//package com.api.gbhg.dq.api;
//
//import cn.com.weaver.services.webservices.test.WorkflowServicePortTypeProxy;
//import cn.hutool.core.util.StrUtil;
//import com.alibaba.fastjson.JSON;
//import com.api.gbhg.dq.dao.BudgetAccountDao;
//import com.api.gbhg.dq.web.PageEntity;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import weaver.common.StringUtil;
//import weaver.conn.RecordSet;
//import weaver.conn.RecordSetTrans;
//import weaver.hrm.HrmUserVarify;
//import weaver.hrm.User;
//import weaver.interfaces.workflow.action.Action;
//import weaver.workflow.webservices.test.*;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import javax.ws.rs.Consumes;
//import javax.ws.rs.POST;
//import javax.ws.rs.Path;
//import javax.ws.rs.Produces;
//import javax.ws.rs.core.Context;
//import javax.ws.rs.core.MediaType;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * 描述: 预算科目下发项目<br/>
// * 作者: qi.dai<br/>
// * 时间: 2021/1/11 13:50 <br/>
// * 更新:
// */
//@Path("/gbhg/budgetaccount")
//public class BudgetAccountApi {
//
//    private final Logger logger = LoggerFactory.getLogger(BudgetAccountApi.class);
//
//    @POST
//    @Path("/list")
//    @Produces(MediaType.APPLICATION_JSON)
//    @Consumes(MediaType.APPLICATION_JSON)
//    public String list(Map<String, String> param) {
//        logger.info("----预算科目下发项目获取列表-----");
//        //账号Id
//        String id = param.get("id");
//        Integer pageNum = Integer.valueOf(param.get("pageNum"));//页数
//        Integer pageSize = Integer.valueOf(param.get("pageSize"));//显示数量
//        logger.info("----获取参数-----" + id);
//        BudgetAccountDao budgetAccountDao = new BudgetAccountDao();
//        RecordSet resourceset = budgetAccountDao.getDepartmentById(id);
//        PageEntity page = new PageEntity();
//        page.setPageNumber(pageNum);
//        page.setpageSize(pageSize);
//        List<Map<String, Object>> result = new ArrayList<>();
//        int total = 0;
//        if (resourceset.next()) {
//            //获取账号所属部门名称
//            String departmentname = resourceset.getString("departmentname");
//            if ("预算管理科".equals(departmentname)) {
//                RecordSetTrans rs = budgetAccountDao.getYskxmxf(pageNum, pageSize);
//                int i = 1;
//                while (rs.next()) {
//                    Map<String, Object> map = new HashMap<>();
//                    RecordSetGetMap(budgetAccountDao, map, rs);
//                    map.put("key", i);
//                    result.add(map);
//                    i++;
//                }
//                total = budgetAccountDao.getYskxmxfCount();//获取数据总条数
//            } else {
//                RecordSetTrans rs = budgetAccountDao.getYskxmxfById(id, pageNum, pageSize);
//                int i = 1;
//                while (rs.next()) {
//                    Map<String, Object> map = new HashMap<>();
//                    RecordSetGetMap(budgetAccountDao, map, rs);
//                    map.put("key", i);
//                    result.add(map);
//                    i++;
//                }
//                total = budgetAccountDao.getYskxmxfCountById(id);//获取数据总条数
//            }
//        }
//        page.setList(result);
//        page.setTotal(total);//数据总条数
//        page.setPages((total + pageSize - 1) / pageSize);
//        return JSON.toJSONString(page);
//    }
//
//    @POST
//    @Path("/add")
//    @Produces(MediaType.APPLICATION_JSON)
//    @Consumes(MediaType.APPLICATION_JSON)
//    public String add(@Context HttpServletRequest request, @Context HttpServletResponse response, String param) {
//        logger.info("----预算科目下发项目添加预算-----" + param);
//        List<Map<String, Object>> list = (List<Map<String, Object>>) JSON.parse(param);
//        User user = HrmUserVarify.getUser(request, response);
//        int userId = user.getUID();
//        BudgetAccountDao budgetAccountDao = new BudgetAccountDao();
//
//        try {
//            for (Map<String, Object> map : list) {
//                Map<String, String> dataMap = new HashMap<String, String>();
//                //单位
//                String dw = map.get("dw").toString();
//                //人员
//                String ry = map.get("ry").toString();
//                //项目名称
//                String xmmc = map.get("xmmc").toString();
//                //预算金额
//                String ysje = map.get("ysje").toString();
//                logger.info("----打印参数-----" + dw + "=" + ry + "=" + xmmc + "=" + ysje);
//                String[] ryList = ry.split(",");
//                for (String ryId : ryList) {
//                    logger.info("----发起提醒流程-----" + ryId);
//                    dataMap.put("mutiresource", ryId);
//                    dataMap.put("remark", "预算科已下发预算表单,请注意查收");
//                    webService(userId, dataMap, "1");
//                }
//                budgetAccountDao.insertYskxmxfs(dw, ry, xmmc, ysje);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            logger.info(e.toString());
//        }
//        return Action.SUCCESS;
//    }
//
//    private void RecordSetGetMap(BudgetAccountDao budgetAccountDao, Map<String, Object> map, RecordSetTrans rs) {
//        //单位
//        String dw = rs.getString("dw");
//        map.put("dw", dw);
//        String departmentName = budgetAccountDao.getDepartmentNameById(dw);
//        map.put("departmentName", departmentName);
//        //人员
//        String ry = rs.getString("ry");
//        map.put("ry", ry);
//        String[] ryList = ry.split(",");
//        StringBuffer sb = new StringBuffer();
//        for (String ryId : ryList) {
//            String name = budgetAccountDao.getHrmresourceById(ryId);
//            sb.append(name + ",");
//        }
//        String name = sb.toString();
//        map.put("name", name.substring(0, name.length() - 1));
//        //项目名称
//        String xmmc = rs.getString("xmmc");
//        map.put("xmmc", xmmc);
//        //预算金额
//        String ysje = rs.getString("ysje");
//        map.put("ysje", ysje);
//        //主键ID
//        String id = rs.getString("id");
//        map.put("id", id);
//        //流程Id
//        String lcid = rs.getString("lcid");
//        //流程状态 	0：创建 1：审批 2：实现 3：归档 4 下发
//        String lczt = "4";
//        if (StringUtil.isNotNull(lcid)) {
//            lczt = budgetAccountDao.getStateByrequestId(lcid);
//        }
//        map.put("lczt", lczt);
//    }
//
//    private String webService(int userId, Map<String, String> dataMap, String activeversionid) throws Exception {
//        WorkflowRequestTableField[] wrti = new WorkflowRequestTableField[dataMap.size()];
//        int count = 0;
//        for (String key : dataMap.keySet()) {
//            logger.info(key + "==" + dataMap.get(key));
//            //主表字段信息
//            wrti[count] = new WorkflowRequestTableField();
//            wrti[count].setFieldName(key);// 字段数据名
//            String value = "";
//            if (StrUtil.isNotEmpty(dataMap.get(key))) {
//                value = dataMap.get(key);
//            }
//            wrti[count].setFieldValue(value);// 值
//            wrti[count].setView(true);// 字段是否可见
//            wrti[count].setEdit(true);// 字段是否可编辑
//            count++;
//        }
//        WorkflowRequestTableRecord[] wrtri = new WorkflowRequestTableRecord[1];// 主字段只有一行数据
//        wrtri[0] = new WorkflowRequestTableRecord();
//        wrtri[0].setWorkflowRequestTableFields(wrti);
//        WorkflowMainTableInfo wmi = new WorkflowMainTableInfo();
//
//        wmi.setRequestRecords(wrtri);
//        // 明细字段
//        WorkflowBaseInfo wbi = new WorkflowBaseInfo();
//        wbi.setWorkflowId(activeversionid);// workflowid
//        WorkflowRequestInfo wri = new WorkflowRequestInfo();// 流程基本信息
//        wri.setCreatorId(String.valueOf(userId));// 创建人id
//        wri.setRequestLevel("0");// 0 正常，1重要，2紧急
//        wri.setRequestName("预算科下发预算消息提醒");// 流程标题
//        wri.setIsnextflow("1");// 0停留在创建节点，1提交至下一节点
//        wri.setWorkflowMainTableInfo(wmi);// 添加主字段数据
//        wri.setWorkflowBaseInfo(wbi);
//        // 执行创建流程接口
//        WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy();
//        String requestid = WorkflowServicePortTypeProxy.doCreateWorkflowRequest(wri, userId);// 21创建人id
//        logger.info("退回中央文件分发-提醒requestid:" + requestid);
//        return requestid;
//    }
//}
